#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
规划器工厂模块

此模块提供基于配置创建路径规划器实例的工厂函数。
"""

from .rrt_base import RRTBase
from .rrt_improved import RRTImproved
from .rrt_bidirectional import RRTBidirectional


def create_planner(planner_type, collision_checker, config):
    """
    基于指定类型创建并返回路径规划器实例。
    
    参数:
        planner_type (str): 要创建的规划器类型
        collision_checker: 碰撞检查器对象
        config (dict): 配置字典
        
    返回:
        object: 指定规划器类型的实例
        
    抛出:
        ValueError: 如果指定的规划器类型无法识别
    """
    planner_type = planner_type.lower()
    
    if planner_type == "rrt_base":
        return RRTBase(collision_checker, config)
    elif planner_type == "rrt_improved":
        return RRTImproved(collision_checker, config)
    elif planner_type == "rrt_bidirectional":
        return RRTBidirectional(collision_checker, config)
    else:
        raise ValueError(f"Unknown planner type: {planner_type}") 